package com.ybkj.daijia.server.freight;

import com.ybkj.daijia.server.model.Area;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import org.apache.commons.lang3.StringUtils;

public class Order implements Serializable {

    /**
     * 新单
     */
    public static final Integer ORDER_STATUS_NEW = 0;
    /**
     * 已派单
     */
    public static final Integer ORDER_STATUS_PAIDAN = 1;
    /**
     * 已接单
     */
    public static final Integer ORDER_STATUS_JIEDAN = 2;
    /**
     * 到达预约地
     */
    public static final Integer ORDER_STATUS_ARRIVE = 3;
    /**
     * 执行中
     */
    public static final Integer ORDER_STATUS_ZHIXING = 4;
    /**
     * 已完成
     */
    public static final Integer ORDER_STATUS_OK = 5;
    /**
     * 已销单
     */
    public static final Integer ORDER_STATUS_XIAODAN = 6;
    public static final String ORDER_TYPE_PHONE = "电话预约";
    public static final String ORDER_TYPE_APP = "APP预约";
    public static final String ORDER_TYPE_WEIXIN = "微信预约";
    public static final String ORDER_TYPE_WEB = "网站预约";
    public static final String ORDER_TYPE_BUDAN = "司机补单";
    /**
     *
     */
    private static final long serialVersionUID = 1L;
    private Long id;

    private String orderNo;

    private Date startTime;

    private Long passengerId;

    private String passengerName;

    private String passengerPhone;

    private Long employId;

    private String employName;

    private String employPhone;

    private Long truckTypeId;

    private String truckTypeName;

    private String truckNumber;

    private Long companyId;

    private String companyName;

    private Long employCompanyId;

    private Double employProfit;

    private Double companyProfit;

    private String startAddress;

    private Double startLat;

    private Double startLng;

    private String destination;

    private Double endLat;

    private Double endLng;

    private String memo;

    private Boolean flitting;

    private Boolean receipt;

    private Boolean receivedPay;

    private Double payMount;

    private Date created;

    private Date updated;

    private Double prerunTimePrice;

    private Double premileagePrice;

    private Integer pretravelTime;

    private Double premileage;

    private Double preStartPrice;

    private Double startPrice;

    private Double mileage;

    private Integer runTime;

    private Double mileagePrice;

    private Double runTimePrice;

    private Long couponId;

    private Double budgetPay;

    private Double fee;

    private Double realPay;

    private BigDecimal couponMoney;

    private BigDecimal cashMoney;

    private BigDecimal signMoney;

    private BigDecimal balanceMoney;

    private BigDecimal alipayMoney;

    private BigDecimal weixinMoney;

    private BigDecimal unionpayMoney;

    private BigDecimal guoluMoney;

    private BigDecimal yuanchengMoney;

    private BigDecimal otherMoney;

    private BigDecimal baoxiaoMoney;//报销费用

    private boolean baoxiao;//是否已报销

    private Boolean review;

    private Long channelId;

    private String channelName;

    private Integer status;

    private Long version;

    private Boolean isClosed;

    private String cancelCause;

    private String payType;

    private Date lasturge;

    private String appKey;

    private Double tip;

    private String employNo;

    private String employPhoto;

    private Double employScore;

    private String payDetail;   //支付详情

    private int waitTime;        //等待时间

    private Double waitCost;    //等候费用

    private List<OrderMemo> orderMemos;

    private OrderReview orderReviews;

    private List<OrderStatus> orderStatusList;

    private List<Waypoint> waypoints;

    private TruckType truckType;

    private Area area;

    private OrderOrbit orderOrbit;

    private Boolean treatment;

    private Double discount;

    private PayTypeDetails prePayTypeDetail; // 预支付方式

    private PayTypeDetails afterPayTypeDetail; // 后支付方式（可能无）

    private Date finishTime;//完成时间 临时字段

    private String truckName;

    private String employMemo;

    private Boolean fixedPrice;//是否定价

    private Double fixPriceMoney;//定价金额

    private Double justKilometres;//司机调价（公里数）

    private BigDecimal justMoney;//司机调价（金额）


    public Double getJustKilometres() {
        if (null == justKilometres) {
            return 0d;
        }
        return justKilometres;
    }

    public void setJustKilometres(Double justKilometres) {
        this.justKilometres = justKilometres;
    }

    public BigDecimal getJustMoney() {
        if (null == justMoney) {
            return BigDecimal.ZERO;
        }
        return justMoney;
    }

    public void setJustMoney(BigDecimal justMoney) {
        this.justMoney = justMoney;
    }

    public Double getFixPriceMoney() {
        return fixPriceMoney == null ? 0.0 : fixPriceMoney;
    }

    public void setFixPriceMoney(Double fixPriceMoney) {
        this.fixPriceMoney = fixPriceMoney;
    }

    public Boolean getFixedPrice() {
        if (this.fixedPrice == null) {
            return false;
        }
        return fixedPrice;
    }

    public void setFixedPrice(Boolean fixedPrice) {
        this.fixedPrice = fixedPrice;
    }

    public String getEmployMemo() {
        return employMemo;
    }

    public void setEmployMemo(String employMemo) {
        this.employMemo = employMemo;
    }

    public BigDecimal getBaoxiaoMoney() {
        return baoxiaoMoney;
    }

    public void setBaoxiaoMoney(BigDecimal baoxiaoMoney) {
        this.baoxiaoMoney = baoxiaoMoney;
    }

    public boolean isBaoxiao() {
        return baoxiao;
    }

    public void setBaoxiao(boolean baoxiao) {
        this.baoxiao = baoxiao;
    }

    public String getTruckName() {
        return truckName;
    }

    public void setTruckName(String truckName) {
        this.truckName = truckName;
    }

    public PayTypeDetails getPrePayTypeDetail() {
        return prePayTypeDetail;
    }

    public void setPrePayTypeDetail(PayTypeDetails prePayTypeDetail) {
        this.prePayTypeDetail = prePayTypeDetail;
    }

    public PayTypeDetails getAfterPayTypeDetail() {
        return afterPayTypeDetail;
    }

    public void setAfterPayTypeDetail(PayTypeDetails afterPayTypeDetail) {
        this.afterPayTypeDetail = afterPayTypeDetail;
    }

    public Double getDiscount() {
        return discount;
    }

    public void setDiscount(Double discount) {
        this.discount = discount;
    }

    public Boolean getTreatment() {
        if (treatment == null) {
            return false;
        }
        return treatment;
    }

    public void setTreatment(Boolean treatment) {
        this.treatment = treatment;
    }

    public String getPayDetail() {
        return payDetail;
    }

    public void setPayDetail(String payDetail) {
        this.payDetail = payDetail;
    }

    public int getWaitTime() {
        return waitTime;
    }

    public void setWaitTime(int waitTime) {
        this.waitTime = waitTime;
    }

    public Double getWaitCost() {
        return waitCost;
    }

    public void setWaitCost(Double waitCost) {
        this.waitCost = waitCost;
    }

    public Long getCouponId() {
        return couponId;
    }

    public void setCouponId(Long couponId) {
        this.couponId = couponId;
    }

    public Area getArea() {
        return area;
    }

    public void setArea(Area area) {
        this.area = area;
    }


    public TruckType getTruckType() {
        return truckType;
    }

    public void setTruckType(TruckType truckType) {
        this.truckType = truckType;
    }

    public OrderOrbit getOrderOrbit() {
        return orderOrbit;
    }

    public void setOrderOrbit(OrderOrbit orderOrbit) {
        this.orderOrbit = orderOrbit;
    }

    public List<OrderMemo> getOrderMemos() {
        return orderMemos;
    }

    public void setOrderMemos(List<OrderMemo> orderMemos) {
        this.orderMemos = orderMemos;
    }

    public OrderReview getOrderReviews() {
        return orderReviews;
    }

    public void setOrderReviews(OrderReview orderReviews) {
        this.orderReviews = orderReviews;
    }

    public List<OrderStatus> getOrderStatusList() {
        return orderStatusList;
    }

    public void setOrderStatusList(List<OrderStatus> orderStatusList) {
        this.orderStatusList = orderStatusList;
    }

    public List<Waypoint> getWaypoints() {
        return waypoints;
    }

    public void setWaypoints(List<Waypoint> waypoints) {
        this.waypoints = waypoints;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo == null ? null : orderNo.trim();
    }

    public Date getStartTime() {
        return startTime;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    public Long getPassengerId() {
        return passengerId;
    }

    public void setPassengerId(Long passengerId) {
        this.passengerId = passengerId;
    }

    public String getPassengerName() {
        return passengerName;
    }

    public void setPassengerName(String passengerName) {
        this.passengerName = passengerName == null ? null : passengerName.trim();
    }

    public String getPassengerPhone() {
        return passengerPhone;
    }

    public void setPassengerPhone(String passengerPhone) {
        this.passengerPhone = passengerPhone == null ? null : passengerPhone.trim();
    }

    public Long getEmployId() {
        return employId;
    }

    public void setEmployId(Long employId) {
        this.employId = employId;
    }

    public String getEmployName() {
        return employName;
    }

    public void setEmployName(String employName) {
        this.employName = employName == null ? null : employName.trim();
    }

    public String getEmployPhone() {
        return employPhone;
    }

    public void setEmployPhone(String employPhone) {
        this.employPhone = employPhone == null ? null : employPhone.trim();
    }

    public Long getTruckTypeId() {
        return truckTypeId;
    }

    public void setTruckTypeId(Long truckTypeId) {
        this.truckTypeId = truckTypeId;
    }

    public String getTruckTypeName() {
        return truckTypeName;
    }

    public void setTruckTypeName(String truckTypeName) {
        this.truckTypeName = truckTypeName == null ? null : truckTypeName.trim();
    }

    public String getTruckNumber() {
        return truckNumber;
    }

    public void setTruckNumber(String truckNumber) {
        this.truckNumber = truckNumber == null ? null : truckNumber.trim();
    }

    public Long getCompanyId() {
        return companyId;
    }

    public void setCompanyId(Long companyId) {
        this.companyId = companyId;
    }

    public String getCompanyName() {
        return companyName;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName == null ? null : companyName.trim();
    }

    public Long getEmployCompanyId() {
        return employCompanyId;
    }

    public void setEmployCompanyId(Long employCompanyId) {
        this.employCompanyId = employCompanyId;
    }

    public Double getEmployProfit() {
        return employProfit;
    }

    public void setEmployProfit(Double employProfit) {
        this.employProfit = employProfit;
    }

    public Double getCompanyProfit() {
        return companyProfit;
    }

    public void setCompanyProfit(Double companyProfit) {
        this.companyProfit = companyProfit;
    }

    public String getStartAddress() {
        return startAddress;
    }

    public void setStartAddress(String startAddress) {
        this.startAddress = startAddress == null ? null : startAddress.trim();
    }

    public Double getStartLat() {
        return startLat;
    }

    public void setStartLat(Double startLat) {
        this.startLat = startLat;
    }

    public Double getStartLng() {
        return startLng;
    }

    public void setStartLng(Double startLng) {
        this.startLng = startLng;
    }

    public String getDestination() {
        return destination;
    }

    public void setDestination(String destination) {
        this.destination = destination == null ? null : destination.trim();
    }

    public Double getEndLat() {
        return endLat;
    }

    public void setEndLat(Double endLat) {
        this.endLat = endLat;
    }

    public Double getEndLng() {
        return endLng;
    }

    public void setEndLng(Double endLng) {
        this.endLng = endLng;
    }

    public String getMemo() {
        return memo;
    }

    public void setMemo(String memo) {
        this.memo = memo == null ? null : memo.trim();
    }

    public Boolean getFlitting() {
        return flitting == null ? false : flitting;
    }

    public void setFlitting(Boolean flitting) {
        this.flitting = flitting;
    }

    public Boolean getReceipt() {
        return receipt == null ? false : receipt;
    }

    public void setReceipt(Boolean receipt) {
        this.receipt = receipt;
    }

    public Boolean getReceivedPay() {
        return receivedPay == null ? false : receivedPay;
    }

    public void setReceivedPay(Boolean receivedPay) {
        this.receivedPay = receivedPay;
    }

    public Double getPayMount() {
        return payMount;
    }

    public void setPayMount(Double payMount) {
        this.payMount = payMount;
    }

    public Date getCreated() {
        return created;
    }

    public void setCreated(Date created) {
        this.created = created;
    }

    public Date getUpdated() {
        return updated;
    }

    public void setUpdated(Date updated) {
        this.updated = updated;
    }

    public Double getPrerunTimePrice() {
        return prerunTimePrice;
    }

    public void setPrerunTimePrice(Double prerunTimePrice) {
        this.prerunTimePrice = prerunTimePrice;
    }

    public Double getPremileagePrice() {
        return premileagePrice;
    }

    public void setPremileagePrice(Double premileagePrice) {
        this.premileagePrice = premileagePrice;
    }

    public Integer getPretravelTime() {
        return pretravelTime;
    }

    public void setPretravelTime(Integer pretravelTime) {
        this.pretravelTime = pretravelTime;
    }

    public Double getPremileage() {
        return premileage;
    }

    public void setPremileage(Double premileage) {
        this.premileage = premileage;
    }

    public Double getPreStartPrice() {
        return preStartPrice;
    }

    public void setPreStartPrice(Double preStartPrice) {
        this.preStartPrice = preStartPrice;
    }

    public Double getStartPrice() {
        return startPrice;
    }

    public void setStartPrice(Double startPrice) {
        this.startPrice = startPrice;
    }

    public Double getMileage() {
        return mileage;
    }

    public void setMileage(Double mileage) {
        this.mileage = mileage;
    }

    public Integer getRunTime() {
        return runTime;
    }

    public void setRunTime(Integer runTime) {
        this.runTime = runTime;
    }

    public Double getMileagePrice() {
        return mileagePrice;
    }

    public void setMileagePrice(Double mileagePrice) {
        this.mileagePrice = mileagePrice;
    }

    public Double getRunTimePrice() {
        return runTimePrice;
    }

    public void setRunTimePrice(Double runTimePrice) {
        this.runTimePrice = runTimePrice;
    }

    public Double getBudgetPay() {
        if (null == budgetPay) {
            return 0d;
        }
        return budgetPay;
    }

    public void setBudgetPay(Double budgetPay) {
        this.budgetPay = budgetPay;
    }

    public Double getFee() {
        return fee;
    }

    public void setFee(Double fee) {
        this.fee = fee;
    }

    public Double getRealPay() {
        if (null == realPay) {
            return 0d;
        }
        return realPay;
    }

    public void setRealPay(Double realPay) {
        this.realPay = realPay;
    }

    public Boolean getReview() {
        return review;
    }

    public void setReview(Boolean review) {
        this.review = review;
    }

    public Long getChannelId() {
        return channelId;
    }

    public void setChannelId(Long channelId) {
        this.channelId = channelId;
    }

    public String getChannelName() {
        return channelName;
    }

    public void setChannelName(String channelName) {
        this.channelName = channelName == null ? null : channelName.trim();
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Long getVersion() {
        return version;
    }

    public void setVersion(Long version) {
        this.version = version;
    }

    public Boolean getIsClosed() {
        return isClosed;
    }

    public void setIsClosed(Boolean isClosed) {
        this.isClosed = isClosed;
    }

    public String getCancelCause() {
        return cancelCause;
    }

    public void setCancelCause(String cancelCause) {
        this.cancelCause = cancelCause == null ? null : cancelCause.trim();
    }

    public String getPayType() {
        return payType;
    }

    public void setPayType(String payType) {
        this.payType = payType == null ? null : payType.trim();
    }

    public Date getLasturge() {
        return lasturge;
    }

    public void setLasturge(Date lasturge) {
        this.lasturge = lasturge;
    }

    public String getAppKey() {
        return appKey;
    }

    public void setAppKey(String appKey) {
        this.appKey = appKey == null ? null : appKey.trim();
    }

    public Double getTip() {
        return tip;
    }

    public void setTip(Double tip) {
        this.tip = tip;
    }

    public String getEmployNo() {
        return employNo;
    }

    public void setEmployNo(String employNo) {
        this.employNo = employNo == null ? null : employNo.trim();
    }

    public String getEmployPhoto() {
        return employPhoto;
    }

    public void setEmployPhoto(String employPhoto) {
        this.employPhoto = employPhoto == null ? null : employPhoto.trim();
    }

    public Double getEmployScore() {
        return employScore;
    }

    public void setEmployScore(Double employScore) {
        this.employScore = employScore;
    }

    public Date getFinishTime() {
        return finishTime;
    }

    public void setFinishTime(Date finishTime) {
        this.finishTime = finishTime;
    }

    public BigDecimal getCouponMoney() {
        if (null == couponMoney) {
            return BigDecimal.ZERO;
        }
        return couponMoney;
    }

    public void setCouponMoney(BigDecimal couponMoney) {
        this.couponMoney = couponMoney;
    }

    public BigDecimal getCashMoney() {
        if (null == cashMoney) {
            return BigDecimal.ZERO;
        }
        return cashMoney;
    }

    public void setCashMoney(BigDecimal cashMoney) {
        this.cashMoney = cashMoney;
    }

    public BigDecimal getSignMoney() {
        if (null == signMoney) {
            return BigDecimal.ZERO;
        }
        return signMoney;
    }

    public void setSignMoney(BigDecimal signMoney) {
        this.signMoney = signMoney;
    }

    public BigDecimal getBalanceMoney() {
        if (null == balanceMoney) {
            return BigDecimal.ZERO;
        }
        return balanceMoney;
    }

    public void setBalanceMoney(BigDecimal balanceMoney) {
        this.balanceMoney = balanceMoney;
    }

    public BigDecimal getAlipayMoney() {
        if (null == alipayMoney) {
            return BigDecimal.ZERO;
        }
        return alipayMoney;
    }

    public void setAlipayMoney(BigDecimal alipayMoney) {
        this.alipayMoney = alipayMoney;
    }

    public BigDecimal getWeixinMoney() {
        if (null == weixinMoney) {
            return BigDecimal.ZERO;
        }
        return weixinMoney;
    }

    public void setWeixinMoney(BigDecimal weixinMoney) {
        this.weixinMoney = weixinMoney;
    }

    public BigDecimal getUnionpayMoney() {
        if (null == unionpayMoney) {
            return BigDecimal.ZERO;
        }
        return unionpayMoney;
    }

    public void setUnionpayMoney(BigDecimal unionpayMoney) {
        this.unionpayMoney = unionpayMoney;
    }

    public BigDecimal getGuoluMoney() {
        if (null == guoluMoney) {
            return BigDecimal.ZERO;
        }
        return guoluMoney;
    }

    public void setGuoluMoney(BigDecimal guoluMoney) {
        this.guoluMoney = guoluMoney;
    }

    public BigDecimal getYuanchengMoney() {
        if (null == yuanchengMoney) {
            return BigDecimal.ZERO;
        }
        return yuanchengMoney;
    }

    public void setYuanchengMoney(BigDecimal yuanchengMoney) {
        this.yuanchengMoney = yuanchengMoney;
    }

    public BigDecimal getOtherMoney() {
        if (null == otherMoney) {
            return BigDecimal.ZERO;
        }
        return otherMoney;
    }

    public void setOtherMoney(BigDecimal otherMoney) {
        this.otherMoney = otherMoney;
    }

    public String getPreAndAfterPayType() {
        if (null != prePayTypeDetail || null != afterPayTypeDetail) {
            String str = "";
            if (null != prePayTypeDetail) {
                if (prePayTypeDetail.equals(PayTypeDetails.sign)) {
                    str = "签单";
                } else if (prePayTypeDetail.equals(PayTypeDetails.balance)) {
                    str = "余额";
                } else if (prePayTypeDetail.equals(PayTypeDetails.alipay)) {
                    str = "支付宝";
                } else if (prePayTypeDetail.equals(PayTypeDetails.weixin)) {
                    str = "微信";
                } else if (prePayTypeDetail.equals(PayTypeDetails.unionpay)) {
                    str = "银联";
                } else if (prePayTypeDetail.equals(PayTypeDetails.coupon_sign)) {
                    str = "优惠券+签单";
                } else if (prePayTypeDetail.equals(PayTypeDetails.coupon_balance)) {
                    str = "优惠券+余额";
                } else if (prePayTypeDetail.equals(PayTypeDetails.coupon_alipay)) {
                    str = "优惠券+支付宝";
                } else if (prePayTypeDetail.equals(PayTypeDetails.coupon_weixin)) {
                    str = "优惠券+微信";
                } else if (prePayTypeDetail.equals(PayTypeDetails.coupon_unionpay)) {
                    str = "优惠券+银联";
                } else if (prePayTypeDetail.equals(PayTypeDetails.coupon)) {
                    str = "优惠券";
                }
            }

            if (null != afterPayTypeDetail) {
                if (afterPayTypeDetail.equals(PayTypeDetails.helppay)) {
                    if (StringUtils.isEmpty(str)) {
                        str = "代付";
                    } else {
                        if (!str.contains("代付")) {
                            str += "+代付";
                        }
                    }
                } else if (afterPayTypeDetail.equals(PayTypeDetails.sign)) {
                    if (StringUtils.isEmpty(str)) {
                        str = "签单";
                    } else {
                        if (!str.contains("签单")) {
                            str += "+签单";
                        }
                    }
                } else if (afterPayTypeDetail.equals(PayTypeDetails.balance)) {
                    if (StringUtils.isEmpty(str)) {
                        str = "余额";
                    } else {
                        if (!str.contains("余额")) {
                            str += "+余额";
                        }
                    }
                } else if (afterPayTypeDetail.equals(PayTypeDetails.alipay)) {
                    if (StringUtils.isEmpty(str)) {
                        str = "支付宝";
                    } else {
                        if (!str.contains("支付宝")) {
                            str += "+支付宝";
                        }
                    }
                } else if (afterPayTypeDetail.equals(PayTypeDetails.weixin)) {
                    if (StringUtils.isEmpty(str)) {
                        str = "微信";
                    } else {
                        if (!str.contains("微信")) {
                            str += "+微信";
                        }
                    }
                } else if (afterPayTypeDetail.equals(PayTypeDetails.unionpay)) {
                    if (StringUtils.isEmpty(str)) {
                        str = "银联";
                    } else {
                        if (!str.contains("银联")) {
                            str += "+银联";
                        }
                    }
                }

            }

            if (!StringUtils.isEmpty(str)) {
                return str;
            } else {
                return null;
            }

        } else {
            return null;
        }
    }


    public String getPreAndAfterPayMoney() {

        String preAndAfterPayType = getPreAndAfterPayType();

        String str = "";
        if (null != preAndAfterPayType) {
            if (preAndAfterPayType.contains("优惠券")) {
                str += couponMoney + "+";
            }
            if (preAndAfterPayType.contains("签单") && preAndAfterPayType.contains("余额")) {
                if (preAndAfterPayType.indexOf("签单") == 0) {
                    str += signMoney + "+" + balanceMoney;
                } else if (preAndAfterPayType.indexOf("余额") == 0) {
                    str += balanceMoney + "+" + signMoney;
                }
            } else if (preAndAfterPayType.contains("签单")) {
                str += signMoney + "+";
            } else if (preAndAfterPayType.contains("余额")) {
                str += balanceMoney + "+";
            }
            if (preAndAfterPayType.contains("支付宝")) {
                str += alipayMoney + "+";
            }
            if (preAndAfterPayType.contains("微信")) {
                str += weixinMoney + "+";
            }
            if (preAndAfterPayType.contains("银联")) {
                str += unionpayMoney + "+";
            }
            if (preAndAfterPayType.contains("代付")) {
                str += cashMoney + "+";
            }
        }

        if (!StringUtils.isEmpty(str)) {
            return str.substring(0, str.length() - 1);
        } else {
            return null;
        }

    }

    @Override
    public String toString() {
        return "Order [id=" + id + ", orderNo=" + orderNo + ", startTime="
            + startTime + ", passengerId=" + passengerId
            + ", passengerName=" + passengerName + ", passengerPhone="
            + passengerPhone + ", employId=" + employId + ", employName="
            + employName + ", employPhone=" + employPhone
            + ", truckTypeId=" + truckTypeId + ", truckTypeName="
            + truckTypeName + ", truckNumber=" + truckNumber
            + ", companyId=" + companyId + ", companyName=" + companyName
            + ", employCompanyId=" + employCompanyId + ", employProfit="
            + employProfit + ", companyProfit=" + companyProfit
            + ", startAddress=" + startAddress + ", startLat=" + startLat
            + ", startLng=" + startLng + ", destination=" + destination
            + ", endLat=" + endLat + ", endLng=" + endLng + ", memo="
            + memo + ", flitting=" + flitting + ", receipt=" + receipt
            + ", receivedPay=" + receivedPay + ", payMount=" + payMount
            + ", created=" + created + ", updated=" + updated
            + ", prerunTimePrice=" + prerunTimePrice + ", premileagePrice="
            + premileagePrice + ", pretravelTime=" + pretravelTime
            + ", premileage=" + premileage + ", preStartPrice="
            + preStartPrice + ", startPrice=" + startPrice + ", mileage="
            + mileage + ", runTime=" + runTime + ", mileagePrice="
            + mileagePrice + ", runTimePrice=" + runTimePrice
            + ", couponId=" + couponId + ", budgetPay=" + budgetPay
            + ", fee=" + fee + ", realPay=" + realPay + ", couponMoney="
            + couponMoney + ", cashMoney=" + cashMoney + ", signMoney="
            + signMoney + ", balanceMoney=" + balanceMoney
            + ", alipayMoney=" + alipayMoney + ", weixinMoney="
            + weixinMoney + ", guoluMoney=" + guoluMoney
            + ", yuanchengMoney=" + yuanchengMoney + ", otherMoney="
            + otherMoney + ", review=" + review + ", channelId="
            + channelId + ", channelName=" + channelName + ", status="
            + status + ", version=" + version + ", isClosed=" + isClosed
            + ", cancelCause=" + cancelCause + ", payType=" + payType
            + ", lasturge=" + lasturge + ", appKey=" + appKey + ", tip="
            + tip + ", employNo=" + employNo + ", employPhoto="
            + employPhoto + ", employScore=" + employScore + ", payDetail="
            + payDetail + ", waitTime=" + waitTime + ", waitCost="
            + waitCost + ", orderMemos=" + orderMemos + ", orderReviews="
            + orderReviews + ", orderStatusList=" + orderStatusList
            + ", waypoints=" + waypoints + ", truckType=" + truckType
            + ", area=" + area + ", treatment=" + treatment + ", discount="
            + discount + ", prePayTypeDetail=" + prePayTypeDetail
            + ", afterPayTypeDetail=" + afterPayTypeDetail
            + ", finishTime=" + finishTime + "]";
    }

    public enum PayTypeDetails {
        /**
         * 代付
         */
        helppay,
        /**
         * 签单
         */
        sign,
        /**
         * 余额
         */
        balance,
        /**
         * 支付宝
         */
        alipay,
        /**
         * 微信
         */
        weixin,
        /**
         * 银联支付
         */
        unionpay,

        /**
         * 优惠劵+签单
         */
        coupon,

        /**
         * 优惠劵+签单
         */
        coupon_sign,
        /**
         * 优惠劵+余额
         */
        coupon_balance,
        /**
         * 优惠劵+支付宝
         */
        coupon_alipay,
        /**
         * 优惠劵+微信
         */
        coupon_weixin,
        /**
         * 优惠劵+银联
         */
        coupon_unionpay,

    }

}
